home *** CD-ROM | disk | FTP | other *** search
- // Personnell Demo database
- // (C) Copyright 1992 Campbell Soup Company by Andrew Frantz
- // CSDUDES.HPP
- // CIS --- 70712,3547
- // =====================================================================
- #include <alloc.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <conio.h>
- #include <iostream.h>
- #include <string.h>
- #include <pxengine.h>
- #include <strstrea.h>
- #include <new.h>
-
- #include "pdxtbl.hpp"
- // extern "C"
- // {
- // #include <nit.h>
- // #include <niterror.h>
- // char *full_name(char *object_name);
- // }
- // char *userFullName();
- #define DATAPATH "F:\\data\\person"
- #define PDOXNETPATH "F:\\data\\person"
- // #define DATAPATH "H:\\users\\es378n\\data\\person"
- // #define PDOXNETPATH "H:\\users\\es378n\\data\\person"
- // ====================================================================
- #define Uses_TEventQueue
- #define Uses_MsgBox
- #define Uses_TEvent
- #define Uses_TProgram
- #define Uses_TApplication
- #define Uses_TKeys
- #define Uses_TRect
- #define Uses_TMenuBar
- #define Uses_TListBox
- #define Uses_TSubMenu
- #define Uses_TMenuItem
- #define Uses_TStatusLine
- #define Uses_TStatusItem
- #define Uses_TStatusDef
- #define Uses_TStringCollection
- #define Uses_TDeskTop
- #define Uses_TView
- #define Uses_TWindow
- // #define Uses_TFrame
- #define Uses_TScroller
- #define Uses_TScrollBar
- #define Uses_TDialog
- #define Uses_TButton
- #define Uses_TSItem
- // #define Uses_TCheckBoxes
- #define Uses_TRadioButtons
- #define Uses_TLabel
- #define Uses_TInputLine
- #define Uses_TCollection
-
- // #define Uses_TEditor
- // #define Uses_TMemo
- #include <tv.h>
- // =====================================================================
- // Define the unique application messages
- const int cmPersonAddDialog = 100;
- const int cmPersonEditDialog = 101;
- const int cmCostCtrAddDialog = 102;
- const int cmCostCtrEditDialog = 103;
- const int cmAboutCmd = 104; // About Dialog Box
-
- const int cmBlank = 200;
- const int cmAddRec = 202;
- const int cmFirstRec = 203;
- const int cmNextRec = 204;
- const int cmClearRec = 205;
- const int cmPrevRec = 206;
- const int cmLastRec = 207;
- const int cmChangeRec = 208;
- const int cmDeleteRec = 209;
- const int cmFindRec = 210;
- const int cmDisplayTheList = 211;
- const int cmsTestQuit = 212;
- const int cmInterView = 213;
-
- void testCore();
- // =====================================================================
- struct PersonXferBuffer
- {
- char LastName[16];
- char FirstName[16];
- char UserName[13];
- char CostCtr[4];
- char Address1[26];
- char Address2[26];
- char City[21];
- char State[3];
- char Zip[11];
- char Ext[5];
- char HomePhone[13];
- ushort Group;
- };
- // =====================================================================
- struct CostCtrXferBuffer
- {
- char CostCtr[4];
- char CCDescription[26];
- char ManagerUserName[13];
- };
- // =====================================================================
- // ========================== PXPerson Class Begins ====================
- class PXPerson : public pxtable
- {
- public:
- PXPerson();
- ~PXPerson(void) { close(); }
-
- PersonXferBuffer DisplayRecord();
- void AddRecord(PersonXferBuffer *data);
- void ChangeRecord(PersonXferBuffer *data);
- int FindRecord(char *data);
-
- int InitFields();
-
- private:
- CharFld LastName;
- CharFld FirstName;
- CharFld UserName;
- CharFld Address1;
- CharFld Address2;
- CharFld City;
- CharFld State;
- CharFld Zip;
- CharFld Ext;
- CharFld HomePhone;
- CharFld CostCtr;
- ShortFld Group;
- };
- // =====================================================================
- class TPersonDlg : public TDialog
- {
- public:
- enum types {AddDlg, EditDlg};
- TPersonDlg();
- TPersonDlg(const char *title, int type);
-
- // friend class TCCListDlg;
- virtual void handleEvent( TEvent& event);
- void cmListItemSelect(char *msg);
- // void cmDisplayList();
- void cmAdd();
- void cmClear();
- void cmFirst();
- void cmNext();
- void cmPrev();
- void cmLast();
- void cmChange();
- void cmDelete();
- void cmFind();
- void cmTestQuit();
- void checkDlg();
- void setDlgStructs();
- int integrityCheck();
-
- private:
- int DlgType;
-
- // Need this to transfer data from Tvision objects to database
- PersonXferBuffer personXferStruct;
- PersonXferBuffer tempPerson; // used to see if screen has changed
- };
- // =====================================================================
- // inlines declared in the header file Coplien idiom
- inline void TPersonDlg::checkDlg()
- {
- int changed=0;
-
- getData((void *) &personXferStruct);
-
- if(strcmp(tempPerson.LastName, personXferStruct.LastName) != 0)
- changed = 1;
- if(strcmp(tempPerson.FirstName, personXferStruct.FirstName) != 0)
- changed = 1;
- if(strcmp(tempPerson.UserName, personXferStruct.UserName) != 0)
- changed = 1;
- if(strcmp(tempPerson.CostCtr, personXferStruct.CostCtr) != 0)
- changed = 1;
- if(strcmp(tempPerson.Address1, personXferStruct.Address1) != 0)
- changed = 1;
- if(strcmp(tempPerson.Address2, personXferStruct.Address2) != 0)
- changed = 1;
- if(strcmp(tempPerson.City, personXferStruct.City) != 0)
- changed = 1;
- if(strcmp(tempPerson.State, personXferStruct.State) != 0)
- changed = 1;
- if(strcmp(tempPerson.Zip, personXferStruct.Zip) != 0)
- changed = 1;
- if(strcmp(tempPerson.Ext, personXferStruct.Ext) != 0)
- changed = 1;
- if(strcmp(tempPerson.HomePhone, personXferStruct.HomePhone) != 0)
- changed = 1;
- if(tempPerson.Group != personXferStruct.Group)
- changed = 1;
-
- if(changed)
- {
- message(owner,evBroadcast,cmsTestQuit,this);
- }
- }
- // =====================================================================
- class TMyListBox : public TListBox
- {
- public:
- TMyListBox(TRect& bounds,ushort num,TScrollBar *bar) :
- TListBox(bounds,num,bar) {};
- void handleEvent(TEvent&);
- };
- // =====================================================================
- class TCCListDlg : public TDialog
- {
- public:
- TCCListDlg(TRect&,char *);
- void handleEvent(TEvent&);
- TMyListBox *listBox;
- };
- // ===================================================================
- class PXCostCtr : public pxtable
- {
- public:
- PXCostCtr();
- ~PXCostCtr(void) { close(); }
-
- CostCtrXferBuffer DisplayRecord();
- void AddRecord(CostCtrXferBuffer *data);
- void ChangeRecord(CostCtrXferBuffer *data);
- int FindRecord(char *data);
-
- int InitFields();
-
- private:
- // friend class TPersonDlg;
- friend class TCCListDlg;
- CharFld CostCtr;
- CharFld CCDescription;
- CharFld ManagerUserName;
- };
- // ====================================================================
- class TCostCtrDlg : public TDialog
- {
- public:
- enum types {AddDlg, EditDlg};
- TCostCtrDlg();
- TCostCtrDlg(const char *title, int type);
-
- virtual void handleEvent( TEvent& event);
- void cmListItemSelect();
- // void cmDisplayList();
- void cmAdd();
- void cmClear();
- void cmFirst();
- void cmNext();
- void cmPrev();
- void cmLast();
- void cmChange();
- void cmDelete();
- void cmFind();
- void cmTestQuit();
- void checkDlg();
- void setDlgStructs();
-
- private:
- int DlgType;
- // Need this to transfer data from Tvision objects to database
- CostCtrXferBuffer costCtrXferStruct;
- CostCtrXferBuffer tempCostCtr; // used to see if screen has changed
- };
- // =====================================================================
- // inlines declared in the header file Coplien idiom
- inline void TCostCtrDlg::checkDlg()
- {
- int changed=0;
-
- getData((void *) &costCtrXferStruct);
-
- if(strcmp(tempCostCtr.CostCtr, costCtrXferStruct.CostCtr) != 0)
- changed = 1;
- if(strcmp(tempCostCtr.CCDescription, costCtrXferStruct.CCDescription) != 0)
- changed = 1;
- if(strcmp(tempCostCtr.ManagerUserName, costCtrXferStruct.ManagerUserName) != 0)
- changed = 1;
-
- if(changed)
- {
- message(owner,evBroadcast,cmsTestQuit,this);
- }
- }
- // ====================================================================
- class TPersonnellApp : public TApplication
- {
- public:
- TPersonnellApp();
- static TStatusLine *initStatusLine( TRect r );
- static TMenuBar *initMenuBar( TRect r );
- virtual void handleEvent( TEvent& event);
- void aboutDlgBox();
-
- // private:
- // friend class TPersonDlg;
- // friend class TCostCtrDlg;
- // friend class TCCListDlg;
- // friend class TMyListBox;
- // Declare pointers to static classes of all the DB classes for the app
-
- static PXPerson* PersonDB;
- static PXCostCtr* CostCtrDB;
- };
- // =====================================================================